//定义store
import {defineStore} from 'pinia'
import {ref} from 'vue'
/* defineStore方法，定义一个store（就是一个小型的数据库，可以存在多个，需要取不同的名字区分）
    第一个参数'usertoken':定义这个store的名字，名字必须唯一，仅用于标识
    第二个参数（）:是一个函数，要存储的内容，也是要导出的部分,函数的内部可以定义响应式数据或函数，说白了就是一段可重复利用的代码

    defineStore方法返回值: 就是一个函数，被赋值为useTokenStore方法并导出，vue中调用这个函数就可以得到一个store对象
    所谓的store就是一段可重复利用的代码，只不过是被封装到一个store对象中，方便调用
*/
export const useTokenStore = defineStore('usertoken',()=>{
    //定义状态的内容

    //1.响应式变量，用于存储token
    const token = ref('')

    //2.定义一个函数,修改token的值，需要一个参数,参数就是新的token
    const setToken = (newToken)=>{
        token.value = newToken
    }

    //3.函数,移除token的值
    const removeToken = ()=>{
        token.value=''
    }

    return {
        token,setToken,removeToken   //导出这两个方法和响应时对象token
    }
},{
    persist:true  //开启数据持久化
});